/**
  ******************************************************************************
  * @file    jiami it.c
  ******************************************************************************
**/
#include "gd32f10x.h"
#include "jiami.h"

volatile uint32_t jm_ok_cnt[8];
volatile uint32_t jm_err_cnt[8];

void jm_gp1_test(uint8_t jmen);
void jm_gp2_test(uint8_t jmen);
void jm_gp3_test(uint8_t jmen);
void jm_gp4_test(uint8_t jmen);
void jm_gp5_test(uint8_t jmen);
void jm_gp6_test(uint8_t jmen);
void jm_gp7_test(uint8_t jmen);
void jm_gp8_test(uint8_t jmen);


void jm_check_task(void * argument)
{
             jm_gp1_test(((uint8_t*)argument)[0]);
             jm_gp2_test(((uint8_t*)argument)[0]);
             jm_gp3_test(((uint8_t*)argument)[0]);
             jm_gp4_test(((uint8_t*)argument)[0]);
             jm_gp5_test(((uint8_t*)argument)[0]);
             jm_gp6_test(((uint8_t*)argument)[0]);
             jm_gp7_test(((uint8_t*)argument)[0]);
             jm_gp8_test(((uint8_t*)argument)[0]);
}

void jm_gp1_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp1_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP1_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[0]++;
    }
    else
    {
        jm_ok_cnt[0]++;
    }
    
}

void jm_gp2_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp2_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP2_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[1]++;
    }
    else
    {
        jm_ok_cnt[1]++;
    }
}

void jm_gp3_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp3_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP3_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[2]++;
    }
    else
    {
        jm_ok_cnt[2]++;
    }
}

void jm_gp4_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp4_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP4_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[3]++;
    }
    else
    {
        jm_ok_cnt[3]++;
    }
}

void jm_gp5_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp5_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP5_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[4]++;
    }
    else
    {
        jm_ok_cnt[4]++;
    }
}

void jm_gp6_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp6_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP6_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[5]++;
    }
    else
    {
        jm_ok_cnt[5]++;
    }
}

void jm_gp7_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0xaaaaaaaa;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp7_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP7_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(0xaaaaaaaa != res)
    {
        jm_err_cnt[6]++;
    }
    else
    {
        jm_ok_cnt[6]++;
    }
}
void jm_gp8_test(uint8_t jmen)
{
    volatile uint32_t res;
    
    res = 0;
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        jiami_check_step_2_mima_gp8_cal();
        
        res += mima_now[3];
        
        jia_mi_step5_clr();
    } while(0);
    
    do
    {
        jiami_check_alloc();
        
        jiami_check_step_1_uuid_get();
        
        jiami_check_step_3_mima_offset_cal();
        
        res -= jia_mi_step4_val_get(MIMA_SITE_GP8_3);
        
        jia_mi_step5_clr();
    } while(0);
    
    if(res)
    {
        jm_err_cnt[7]++;
    }
    else
    {
        jm_ok_cnt[7]++;
    }
}

